# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=elfutils
pkgver=0.187
pkgrel=1
pkgdesc="Utilities and DSOs to handle ELF files and DWARF data"
url="http://elfutils.org/"
arch="all"
license="GPL-3.0-or-later AND (GPL-2.0-or-later OR LGPL-3.0-or-later)"
makedepends="bison flex-dev zlib-dev bzip2-dev xz-dev argp-standalone
	bsd-compat-headers libtool fts-dev musl-obstack-dev linux-headers"
subpackages="libelf libelf-static $pkgname-dev $pkgname-doc"
source="https://sourceware.org/elfutils/ftp/$pkgver/elfutils-$pkgver.tar.bz2
	error.h
	fix-aarch64_fregs.patch
	fix-uninitialized.patch
	musl-macros.patch
	musl-asm-ptrace-h.patch
	"

# secfixes:
#   0.176-r0:
#     - CVE-2019-7146
#     - CVE-2019-7148
#     - CVE-2019-7149
#     - CVE-2019-7150
#     - CVE-2019-7664
#     - CVE-2019-7665
#   0.175-r0:
#     - CVE-2019-18310
#     - CVE-2019-18520
#     - CVE-2019-18521
#   0.174-r0:
#     - CVE-2019-16062
#     - CVE-2019-16402
#     - CVE-2019-16403
#   0.168-r1:
#     - CVE-2017-7607
#     - CVE-2017-7608

prepare() {
	default_prepare

	cp "$srcdir"/error.h "$builddir"/lib
	cp "$srcdir"/error.h "$builddir"/src

	cat > lib/libintl.h <<-EOF
		#ifndef LIBINTL_H
		#define LIBINTL_H
		#define _(x) (x)
		#endif
	EOF
}

build() {
	CFLAGS="$CFLAGS -Wno-error -Wno-null-dereference" \
	./configure \
		--build=$CBUILD \
		--host=$CHOST \
		--prefix=/usr \
		--sysconfdir=/etc \
		--mandir=/usr/share/man \
		--localstatedir=/var \
		--disable-werror \
		--program-prefix=eu- \
		--enable-deterministic-archives \
		--disable-nls \
		--disable-libdebuginfod \
		--disable-debuginfod
	# for now we only build libelf
	make
}

package() {
	make DESTDIR="$pkgdir" install
}

libelf() {
	replaces="$pkgname-libelf"
	provides="$pkgname-libelf=$pkgver-r$pkgrel"

	pkgdesc="$pkgdesc - runtime libraries"
	mkdir -p "$subpkgdir"/usr/lib
	mv "$pkgdir"/usr/lib/*.so.* "$subpkgdir"/usr/lib/
	mv "$pkgdir"/usr/lib/*-*.so "$subpkgdir"/usr/lib/
}

sha512sums="
a9b9e32b503b8b50a62d4e4001097ed2721d3475232a6380e6b9853bd1647aec016440c0ca7ceb950daf1144f8db9814ab43cf33cc0ebef7fc91e9e775c9e874  elfutils-0.187.tar.bz2
8b650bc78cea66f30f0ff66357005890ac8a1b04a8dcc50209cb10a4b4c5ede849505cb68463beca8316ace0fbd53bbc484cfb597805b55616f3b3fc2b864e9a  error.h
c3676b0b8b40d6e437f5d88c0d658dc0829ec97d1955e4bbf96f4cff9ee9001b8f2f06174450ae7aa5858b91c7905bdbd49073b561c346416132338a9c94731b  fix-aarch64_fregs.patch
b9ba55e1b56a8abf694b6d02f022d9a3a0ae6ab53a8c4a71e49552e32411ef410d3a7512fbd1a729696bc2046ac11586829816f0fa3b8226ee77c9dc4b741e58  fix-uninitialized.patch
792be4a38b55d20a320605ab340357ad55dc295ab241af86cd3edf4ec84b0122e91ebcf78d8d6a0f926104b5eb22306be1356b0892f71ee3ba27ae38e9130aab  musl-macros.patch
7c529f88dc248f657a8d690044560c20a222c5b37d0d7dcb057bf2eea8938c406cccd6129bce19542088511a026b233234c9a83933a525c4691810be9ca712bf  musl-asm-ptrace-h.patch
"
